package com.sa07.config;

import java.util.Properties;

import org.apache.log4j.Logger;

import com.sa07.bean.SystemConstant;
import com.sa07.exception.SaveConfigFailedException;
import com.sa07.utils.FileUtils;

/**
 * 用户参数配置
 * 
 * @author Long.shangbo
 *
 * 2014-2-25 下午2:23:03
 */
public enum UserArgsConfig {
	INSTANCE;
	
	private Properties cache = null;
	
	private Logger logger = Logger.getLogger(UserArgsConfig.class);
	
	/**
	 * 初始化方法
	 * @param pro
	 */
	public void init(Properties pro){
		if(this.cache == null){
			this.cache = pro;
		}
	}

	/**
	 * 获得用户参数
	 * @param key
	 * @return
	 */
	public String getUserArgs(String key){
		return cache.getProperty(key);
	}
	
	/**
	 * 修改配置
	 * @param key
	 * @param value
	 * @return
	 */
	public void modifyArg(String key, String value){
		cache.put(key, value);
	}
	
	/**
	 * 保存到文件系统
	 * @throws SaveConfigFailedException 
	 */
	public void saveToFileSystem() throws SaveConfigFailedException{
		try {
			FileUtils.savePropertiesFile(SystemConstant.USER_ARGS_FILE, cache);
		} catch (SaveConfigFailedException e) {
			e.printStackTrace();
			logger.error("Save User args failed,  caused by -> " + e);
			throw e;
		}
	}
}
